﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QuanLyBepAnTuThien
{
    public partial class frmLapBienBanBanGiao : Form
    {
        public frmLapBienBanBanGiao()
        {
            InitializeComponent();
        }
        connect cn = new connect();
        private void loaddata()
        {
            cobDungCu.DataSource = cn.getDataTable("tblDungCu_NguyenLieu_DS");
            cobDungCu.DisplayMember = "TenDungCu";
            cobDungCu.ValueMember = "MaDungCu";

            cobToGiao.DataSource = cn.getDataTable("tblTo_DS");
            cobToGiao.DisplayMember = "TenTo";
            cobToGiao.ValueMember = "MaTo";

            cobToNhan.DataSource = cn.getDataTable("tblTo_DS");
            cobToNhan.DisplayMember = "TenTo";
            cobToNhan.ValueMember = "MaTo";

            cobNguoiGiao.DataSource = cn.getDataTable("tblNhanVien_DS");
            cobNguoiGiao.DisplayMember = "HoTen";
            cobNguoiGiao.ValueMember = "MaNV";

            cobNguoiNhan.DataSource = cn.getDataTable("tblNhanVien_DS");
            cobNguoiNhan.DisplayMember = "HoTen";
            cobNguoiNhan.ValueMember = "MaNV";
        }
        private void frmLapBienBanBanGiao_Load(object sender, EventArgs e)
        {
            loaddata();
            try
            {
                gridview.CurrentRow.Selected = true;
            }
            catch
            {
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (txtSoLuong.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập số lượng","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
                txtSoLuong.Focus();
            }
            else if (cobTinhTrang.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập tình trạng", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                cobTinhTrang.Focus();
            }
            else
            {
                gridview.AllowUserToAddRows = false;
                gridview.Rows.Add(1);
                int indexRow = gridview.Rows.Count - 1;
                gridview["TenDungCu", indexRow].Value = cobDungCu.Text;
                gridview["SoLuong", indexRow].Value = txtSoLuong.Text;
                gridview["MaDungCu", indexRow].Value = cobDungCu.SelectedValue;
                gridview["TinhTrang", indexRow].Value = cobTinhTrang.Text;
            }
        }

        private void txtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void gridview_SelectionChanged(object sender, EventArgs e)
        {
            gridview.CurrentRow.Selected = true;
        }
        private bool kiemtrahoten(string ten)
        {
            SqlCommand cmd = new SqlCommand("tblNhanVien_KiemTraTenNV", cn.ketnoi());
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("tennv", SqlDbType.NVarChar)).Value = ten;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            if (dt.Rows.Count <= 0)
            {
                return false;
            }
            return true;
        }
        private bool kiemtradungcu()
        {
            SqlCommand cmd = new SqlCommand("tblDungCuNguyenLieu_KiemTraTen", cn.ketnoi());
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("ten", SqlDbType.NVarChar)).Value = cobDungCu.Text;
            object ob = cmd.ExecuteScalar();
            if (Convert.ToInt32(ob) <= 0)
            {
                return false;
            }
            return true;
        }
        private bool KiemTraTenTo(string tento)
        {
            SqlCommand cmd = new SqlCommand("tblTo_KiemTraTenTo", cn.ketnoi());
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("tento", SqlDbType.NVarChar)).Value = tento;
            object to = cmd.ExecuteScalar();
            if (Convert.ToInt32(to) > 0)
            {
                return true;
            }
            return false;

        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (kiemtradungcu() == false)
            {
                MessageBox.Show("Nguyên liệu hoặc dụng cụ chưa có trong hệ thống","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
                cobDungCu.Focus();
            }
            else if (kiemtrahoten(cobNguoiGiao.Text) == false)
            {
                MessageBox.Show("Tên người giao chưa có trong hệ thống", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                cobNguoiGiao.Focus();
            }
            else if (kiemtrahoten(cobNguoiNhan.Text) == false)
            {
                MessageBox.Show("Tên người nhận chưa có trong hệ thống", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                cobNguoiNhan.Focus();
            }
            else if (KiemTraTenTo(cobToGiao.Text) == false)
            {
                MessageBox.Show("Tên tổ chưa có trong hệ thống", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                cobToGiao.Focus();
            }
            else if (KiemTraTenTo(cobToNhan.Text) == false)
            {
                MessageBox.Show("Tên tổ chưa có trong hệ thống", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                cobToNhan.Focus();
            }
            else if (gridview.Rows.Count == 0)
            {
                MessageBox.Show("Bạn chưa nhập chi tiết biên bản bàn giao","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
            }
            else
            {
                SqlCommand cmd = new SqlCommand("tblBienBanBanGiao_Them", cn.ketnoi());
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("togiao", SqlDbType.Int)).Value = cobToGiao.SelectedValue;
                cmd.Parameters.Add(new SqlParameter("tonhan", SqlDbType.Int)).Value = cobToNhan.SelectedValue;
                cmd.Parameters.Add(new SqlParameter("nvnhan", SqlDbType.VarChar)).Value = cobNguoiNhan.SelectedValue;
                cmd.Parameters.Add(new SqlParameter("nvgiao", SqlDbType.VarChar)).Value = cobNguoiGiao.SelectedValue;
                cmd.Parameters.Add(new SqlParameter("ngaygiao", SqlDbType.DateTime)).Value = DateTime.Now;
                //SqlTransaction stran = cn.ketnoi().BeginTransaction();
                //cmd.Transaction = stran;          
                //try
                // {                   
                if (cmd.ExecuteNonQuery() == 1)
                {
                    //stran.Commit();  
                    SqlCommand cmd_max = new SqlCommand("tblBienBanBanGiao_MaBanGiaoMax", cn.ketnoi());
                    cmd_max.CommandType = CommandType.StoredProcedure;
                    object max = cmd_max.ExecuteScalar();
                    //MessageBox.Show(Convert.ToInt32(max).ToString());
                    int i;
                    for (i = 0; i < gridview.Rows.Count; i++)
                    {
                        int madungcu = int.Parse(gridview.Rows[i].Cells["MaDungCu"].Value.ToString());
                        double soluong = double.Parse(gridview.Rows[i].Cells["SoLuong"].Value.ToString());
                        string tinhtrang = gridview.Rows[i].Cells["TinhTrang"].Value.ToString();
                        SqlCommand cmd_insert = new SqlCommand("tblChiTietBanGiao_Them", cn.ketnoi());
                        cmd_insert.CommandType = CommandType.StoredProcedure;
                        cmd_insert.Parameters.Add(new SqlParameter("mabangiao", SqlDbType.Int)).Value = Convert.ToInt32(max);
                        cmd_insert.Parameters.Add(new SqlParameter("madungcu", SqlDbType.Int)).Value = madungcu;
                        cmd_insert.Parameters.Add(new SqlParameter("soluong", SqlDbType.Int)).Value = soluong;
                        cmd_insert.Parameters.Add(new SqlParameter("tinhtrang", SqlDbType.NVarChar)).Value = tinhtrang;
                        cmd_insert.ExecuteNonQuery();
                        //cmd_insert.Transaction = trans;
                    }
                    MessageBox.Show("Lập biên bản thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                //}
                //catch
                //{
                //MessageBox.Show("Đã xảy ra lỗi trong quá trình lập biên bản", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                // stran.Rollback();
                // }
            }
        }

        private void cobToNhan_SelectedIndexChanged(object sender, EventArgs e)
        {

            //SqlCommand cmd = new SqlCommand("tblNhanVien_LoadDSTheoTo", cn.ketnoi());
            //cmd.CommandType = CommandType.StoredProcedure;
            //cmd.Parameters.Add(new SqlParameter("to", SqlDbType.Int)).Value = cobToGiao.SelectedValue.ToString();
            //SqlDataAdapter da = new SqlDataAdapter(cmd);
            //DataTable dt = new DataTable();
            //cobNguoiNhan.DataSource = dt;
            //MessageBox.Show(cobToGiao.SelectedValue.ToString());
            //cobNguoiNhan.DisplayMember = "HoTen";
            //cobNguoiNhan.ValueMember = "MaNV";
   
        }

        private void cobToGiao_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
